package com.itheima.ood.lambda.demo03;

public class LambdaDemo {

    public static void main(String[] args) {

        // 使用匿名内部类方式去调用useCalculator这个方法
        int result = useCalculator(new Calculator() {

            @Override
            public int sum(int a, int b) {
                return a + b;
            }

        });

        System.out.println(result);

        System.out.println("-------------------------------------------");

        // 使用lambda表达式进行实现
        int result2 = useCalculator((int a , int b) -> {
            return a + b ;
        });

        System.out.println(result2);

        System.out.println("-------------------------------------------");

        int result3 = useCalculator((a , b) -> {
            return a + b ;
        });

        System.out.println(result3);

        System.out.println("---------------------------------------");

        // 如果代码块的语句只有一条，可以省略大括号和分号，甚至是return
        int result4 = useCalculator((a , b) -> a + b);
        System.out.println(result4);


    }

    // 使用Calculator
    public static int useCalculator(Calculator calculator) {
        int a = 23 ;
        int b = 34 ;
        return calculator.sum(a , b) ;
    }

}
